문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 Vanilla JS (문단 편집) == 논점 == 실제로는 바닐라에 대한 명확한 개념이 없고 의미가 혼용되는 경우가 많기 때문에 아래의 여러 오해를 사기도 한다. 1. 바닐라 js는 (새로 나온) 프레임워크가 아니다. 여러 기사나 글에서 바닐라 js를 쓰자! 라는 이야기가 많기 때문에 가장 많은 사람들이 착각하게 되는 부분이다. 바닐라 js는 어떠한 유형의 라이브러리나 프레임워크가 아니며, 따라서 추가적인 설치나 사용법을 배울 필요가 없다. 그렇다면 왜 굳이 용어를 구분하는가, 또는 당연히 여러 라이브러리도 js를 기반으로 하는데 내가 쓰는 것은 자바스크립트가 아니란 말인가? 하는 혼동이 올 수 있으며 이는 아래의 오해들과 이어진다. 1. 바닐라 js가 '무조건 좋은 것'이 아니다. 어느 프로그래밍 언어나 마찬가지로, 기본 언어만으로 높은 생산성을 달성하기는 쉽지 않으며, 특히나 바퀴를 재발명하는 일이 있어서는 안 된다. js로 개발을 할 때 아무 라이브러리도 없이 개발을 하게 된다면 당연하겠지만 생산성이 급격하게 저하되며, 가뜩이나 부족하고 표준화되지 못한 js의 내장(정확히는 corejs의 Object밑에 있는 메서드들) 라이브러리로는 모든 요구사항을 따라잡기 버겁다.[* 간단한 예로 데이터 처리를 들 수 있다. js의 sort메서드는 사용하기 복잡하며, 의도치 않은 결과를 낼 수 있고, 경우에 따라 브라우저마다 동작이 달라지는 일마저 생길 수 있다. 그리고 groupby처럼 고수준의 동작은 지원하지 않는다. 이런 단점을 해결하기 위해 [[Underscore.js]](또는 lodash), stdjs등이 서드파티로 개발되는 것이다.] 바닐라 js를 지향하자는 말은 아무 라이브러리도 쓰지 말자는 것이 아니라 '라이브러리에 대한 지나친 의존'을 버리라는 것이 논점이다. 즉 제이쿼리로 슬라이드 뷰를 쉽게 만들 수 있지만 js만 써서는 할 수 없다면 그것은 개발자로써 특정 도구에 지나치게 의존한다는 뜻이 된다. 기억할 점은, 실제 현장에서는 당연히 제이쿼리를 쓰고, 리액트를 써서[* 리액트의 목적 자체가 컴포넌트의 재사용이다. 즉 이미 누가 만든 것이 있다면 새롭게 짤 필요가 없다.] 만들며, js만으로 만드는 경우가 오히려 드물다. 1. 바닐라 js는 UI에 대해서만 말이 된다. js의 범위가 넓어짐에 따라 node 등으로 백엔드를 개발하는 js개발자에게는 바닐라 js라는 말 자체가 의미가 통하지 않는다. 바닐라 js는 과거에 '구현이 복잡한 동적인 UI'를 쉽게 만들기 위한 제이쿼리같은 툴에 지나치게 의존하던 개발자들이 native DOM API 자체를 사용하지 않게 되면서 만들어진 용어이다. 즉, 과거엔 js가 제이쿼리와 사실상 동일시 되던 '브라우저 위에서 돌아가는 스크립트 언어' 정도의 위상이었고, 표준화되지 않은 여러 DOM API들로 인해 차라리 통일된 제이쿼리 같은 라이브러리가 오히려 브라우저 호환성(IE등도 지원)이 높았음을 고려해야 한다. 따라서 현재의 js의 쓰임(백엔드 등)과 위상, 표준화된 문법(ES6+), 표준화된 브라우저 API등과 과거의 차이를 이해해야만 바닐라 js의 진정한 의미를 이해할 수 있다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기